import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Clase Transportador verifica si el jugador llego a el para llevarlo al siguiente mundo
 * con una pequeña animacion del Heroe marchandose
 * 
 * @author (Gerardo Antonio Hernandez & Christian Israel Rodriguez Ahumada)
 * @version (29.06.2013)
 */
public class Transportador extends Actor
{
    private GreenfootImage viaje[]= new GreenfootImage [12];
    private int nivel;

    
    
    /**
     * CONSTRUCTOR DEL TRANSPORTADOR QUE RECIBE UN NIVEL
     */
    
    public Transportador(int unNivel)
    {
        this.CargarArregloIma();
        nivel=unNivel;
    }
    
    /**
     * Constructor del transportador 
     */
    public Transportador()
    {
        this(0);
    }

    /**
     * Act - do whatever the Transportador wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act() 
    {
        long score;
        Nivel1 mundo= (Nivel1)getWorld();
        if(isTouching(Heroe.class))
        {
           
            Actor a=getOneIntersectingObject(Heroe.class);
            
            score=((Heroe)a).getScore();
            mundo.removeObject(a);
            GreenfootSound tele=new GreenfootSound("tele.mp3");
            
       
            mundo.detenlvl1();
        

       
        
            mundo.detenlvl2();
           
        
        
        
             mundo.detenlvl3();
           
           tele.play();
             Greenfoot.delay(200);

            for(int i=11; i>=0; i--){
                setImage(viaje[i]);
                Greenfoot.delay(9);
            }

            this.ChecaNivel();
             
           
            
            
            mundo.removeObject(this);

          

         
         
        }
    }   

    /**
     * Arreglo de imagenes
     */
    public void CargarArregloIma()
    {
        for(int i=0;i<12;i++)
            viaje[i]=(new GreenfootImage("Aparece"+(i)+".png"));
    }
    
    /**
     * revisa a que nivel envia al jugador
     */
    public void ChecaNivel()
    {
        Nivel1 mundo= (Nivel1)getWorld();

        if(mundo!=null && mundo.getNivel()==1)
        {
            
            
            mundo.detenlvl1();
            mundo.eliminaObjetos();
            mundo.prepare(2); 
            
            mundo.incrementaNivel();
            return;
        }

        else if(mundo!=null && mundo.getNivel()==2)
        {
            mundo.detenlvl2();
            mundo.eliminaObjetos();
           
            mundo.prepare(3); 
              mundo.incrementaNivel();
              return;
        }
        
        if(mundo!=null && mundo.getNivel()==3)
        {
             mundo.detenlvl3();
            mundo.eliminaObjetos();
            mundo.detenlvl3();
               mundo.setBackground("win.jpg");
               GreenfootSound win=new GreenfootSound("win.mp3");
               win.play();
               Greenfoot.delay(500);
               win.stop();
               mundo.actualicemosPuntos();
               
                mundo.reseteaNivel();
           
                mundo.prepare(0); 
                return;
             
        }

     
    }
}
